package com.company.command.impl;

import com.company.command.ICommand;
import com.company.constant.SysConstant;
import com.company.util.DataUtils;

import java.io.File;

/**
 * @author : cyw
 * @date : created in  下午4:26 2021/6/11
 * @description : 显示所有的目录
 * @modified by :
 * @Version : $
 */

public class ShowAllMemuICommand implements ICommand {
    @Override
    public synchronized void command() {
        getFiles(SysConstant.DEFAULT_ROOT_PATH);
        DataUtils.sortData();
        DataUtils.showData();
    }

    /**
     * 通过递归得到所有的目录和文件
     *
     * @param filePath
     */
    private synchronized void getFiles(String filePath) {
        File root = new File(filePath);
        File[] files = root.listFiles();
        if (files.length == 0) {
            return;
        }
        for (File file : files) {
            if (file.isDirectory()) {
                getFiles(file.getAbsolutePath());
                SysConstant.FILE_DATA.add("*: " + file.getPath());
            } else {
                SysConstant.FILE_DATA.add("@: " + file.getPath());
            }
        }
    }


}
